package negocio;

import conexion.Conexion;
import conexion.Sql;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;


public class Bancos 
{
     /**
     * Variable global: Sergio Velásquez
     */
    String codigo;
    /**
     * Variable global: Sergio Velásquez
     */
    String nombre;

/**
 * Constructor de la clase     
 */
    public Bancos() 
    {
    }

    /**
     * Método que recibe una variable para hacer un get y set     
     * @param codigo es el codigo del banco
     * @param nombre es el nombre del banco     
     */
    
    public Bancos(String codigo, String nombre) 
    {
        this.codigo = codigo;
        this.nombre = nombre;
    }

    /**
     * Método que trae el codigo cuando es llamado     
     * @return codigo traido del metodo bancos     
     */
    public String getCodigo()
    {
        return codigo;
    }

    /**
     * Método que trae el nombre cuando es llamado     
     * @return nombre traido del metodo bancos     
     */
    public String getNombre() 
    {
        return nombre;
    }
    
    /**
     * Método que ejecuta el sql de insertar un banco   
     * @return ok devulve true cuando ejecuta el sql o sino retorna false    
     */
    public boolean insertarBancos()
    {
        boolean ok=false;
        //conexion conex = new Conexion();
        /**
     * Variable local: Sergio Velásquez
     */
        String sql = "INSERT INTO bancos(codigo,nombre) values('"+codigo+"','" +nombre+"')";
        //Sql.ejecuta(sql);
         
        if (Sql.ejecuta(sql)==null)
           {
            ok=true;
           }
          else
           {
            System.out.println("NO INSERTO " + Sql.ejecuta(sql));
           }

       return ok;
    }

     /**
     * Método que ejecuta el sql de listar los bancos   
     * @return ok devulve true cuando ejecuta el sql o sino retorna false   
     * @exception ParseException Error de excepcion, ocurre en caso de que no encuentre el driver
     */
    public ArrayList listaBancos()
     {
          /**
     * Variable local: Sergio Velásquez
     */
        ArrayList lista = new ArrayList();
        
        Conexion conex = new Conexion();
        
         /**
     * Variable local: Sergio Velásquez
     */
        String sql = "select * from bancos";
        try
        {
          conex.conectar();
          PreparedStatement st = conex.getConnection().prepareStatement(sql);
          ResultSet rs = st.executeQuery();
          
          //Recorre el objeto y adiciona los registros a la matriz
          while (rs.next())
          {
              lista.add(new Bancos(rs.getString(1), rs.getString(2)));
          }
          conex.desconectar();
          }
        
        catch(ClassNotFoundException ex)
          {
            System.out.println(ex);
          }
        
        catch(SQLException ex)
          {
            System.out.println(ex);
          }
        
        return lista;
     }
    
      /**
     * Método que ejecuta el sql de buscar un banco   
     * @return lista devulve la lista cuando no entra por ninguna excepcion    
     */
     public ArrayList buscarBancos(String codigo) throws ClassNotFoundException
    {
        ArrayList lista = new ArrayList();
        boolean ok=false;
        Conexion conex = new Conexion();
        
         /**
     * Variable local: Sergio Velásquez
     */
        String sql = "Select * from Bancos where codigo=?";
        
        try
          {
            conex.conectar();
            PreparedStatement ps = conex.getConnection().prepareStatement(sql);
            ps.setString(1, codigo);
            ResultSet rs = ps.executeQuery();
           
            while (rs.next())
            {
                lista.add(new Bancos(rs.getString(1), rs.getString(2)));
            }
            
             conex.desconectar();
          }
         catch(ClassNotFoundException ex)
          {
            System.out.println(ex);
          } 
         catch(SQLException ex)
        {
            System.out.println(ex);
        }
        return lista;
    } 
     
     
     /**
     * Método para eliminar un banco  
     * @param codigo codigo del banco a eliminar       
     */
     
    public void eliminarBancos(String codigo)
     {
          /**
     * Variable local: Sergio Velásquez
     */
         String  sql = "DELETE FROM Bancos WHERE codigo = '" + codigo +"'";
         Sql.ejecuta(sql);        
     }
    
    /**
     * Método para modificar un banco           
     */
 public void modificarBancos()
   {
        /**
     * Variable local: Sergio Velásquez
     */
       
        String  sql = "UPDATE Bancos SET nombre = '"+nombre+"' WHERE codigo ='" +codigo+"'";
        Sql.ejecuta(sql);
   }
 
 

}
